// import com.alibaba.druid.sql.ast.SQLExpr;
// import com.alibaba.druid.sql.ast.SQLName_ptr;
// import com.alibaba.druid.sql.ast.SQLObjectImpl;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor;

// import java.util.ArrayList;
// import java.util.List;
#pragma once
#include "../SQLObjectImpl.h"
#include "SQLAlterTableItem.h"

class SQLAlterTableExchangePartition
 : virtual public SQLObjectImpl ,
 virtual public SQLAlterTableItem
{
public:
  SQLExpr_list_ptr partitions;
  SQLExprTableSource_ptr table;
  BOOL_ptr validation;

  SQLAlterTableExchangePartition();
  SHAREDOBJECT(SQLAlterTableExchangePartition);

  // @Override
  void accept0(SQLASTVisitor_ptr visitor);

  SQLExpr_list_ptr getPartitions();

  void addPartition(SQLExpr_ptr x);

  SQLExprTableSource_ptr getTable();

  void setTable(SQLName_ptr x);

  void setTable(SQLExprTableSource_ptr x);

  void setValidation(BOOL_ptr validation);

  BOOL_ptr getValidation();
};
